"""
配置信息：
1.数据库配置
2.redis配置
3.session配置
4.csrf配置:当修改服务器资源的时候保护(post,put,delete,dispatch)
5.日志文件:记录程序运行的过程
6.迁移配置
"""""
import logging
import random
from datetime import datetime,timedelta

from flask import current_app

from info import create_app,db,models
from flask_script import  Manager
from flask_migrate import Migrate,MigrateCommand

from info.models import User

app=create_app('develop')
#配置数据库迁移
manager=Manager(app)
Migrate(app,db)
manager.add_command('db',MigrateCommand)
# @manager.option()
@manager.option('-u', '--username', dest='username')
@manager.option('-p', '--password', dest='password')
def create_superuser(username,password):
    #创建管理对象
    admin=User()

    #设置属性
    admin.nick_name=username
    admin.mobile=username
    admin.password=password
    admin.is_admin=True
    #保存到数据库
    try:
        db.session.add(admin)
        db.session.commit()
    except Exception as e:
        current_app.logger.error(e)
        return "创建失败"
    return "创建成功"

#添加测试账号
@manager.option('-t', '--test', dest='test')
def create_test_user(test):
    #定义空容器
    user_list=[]
    for  i in range(0,1000):
        #创建对象
        user=User()
        #设置属性
        user.nick_name='158%08d'%i
        user.mobile='158%08d'%i
        user.password_hash='pbkdf2:sha256:50000$rIsLovfD$c9301f75962050af0ce64bf4d80a6be4d92581319b43f15d80dda8f5da5b723c'
        user.is_admin=False
        #添加到容器
        user_list.append(user)
        #模拟近一个月登陆时间
        user.last_login=datetime.now()-timedelta(seconds=random.randint(0,3600*24*31))

    #添加到数据库
    try:
        db.session.add_all(user_list)
        db.session.commit()
    except Exception as e:
        current_app.logger.error(e)
        db.session.rollback()
        return "添加失败"
    return "添加成功"





if __name__ == '__main__':
    manager.run()
